Obsidian 官方文档参考
标签
软件/Obsidian
软件/Obsidian/插件
开发/前端
字数
507 字
阅读时间
3 分钟
关于 main.ts
- 使用
require('obsidian')
导入任何黑曜石 API。 - 使用
require('fs')
或require('electron')
导入 NodeJS 或 Electron API。 - 必须使用
export default class
导出一个扩展Plugin
的默认类 - 必须使用诸如
Rollup
、Webpack
或其他 JavaScript/TypeScript 打包工具,将所有的外部依赖关系捆绑到这个文件中。
黑曜石 App 架构
该应用程序被组织成几个主要模块。
- App,全局对象,拥有其他一切。你可以在你的插件中通过
this.app
访问它。App 接口提供了以下接口的访问器。 - Vault,让你与保险库中的文件和文件夹互动的接口。
- Workspace,让你与屏幕上的面板互动的接口。
- MetadataCache,包含每个markdown文件的缓存元数据的界面,包括标题、链接、嵌入、标签和块。
同时,继承了 Plugin 类之后,可以使用下面的函数:
- 使用
this.addRibbonIcon
添加一个侧边栏图标。 - 使用
this.addStatusBarItem
添加一个状态栏(底部)元素。 - 使用
this.addCommand
添加一个全局命令,可以选择一个默认的热键。 - 使用
this.addSettingTab
添加一个插件设置标签。 - 使用
this.registerView
注册一种新的视图。 - 使用
this.loadData
和this.saveData
来保存和加载插件数据。
对于从任何事件接口注册事件,如 App
和 Workspace
,请使用 this.registerEvent
,它将在你的插件卸载时自动分离你的事件处理程序。:
this.registerEvent(app.on('event-name', callback));
如果需要为那些在插件卸载后依然需要存在于页面上的元素注册 DOM 事件,如window
或document
事件,请使用this.registerDomEvent
:
this.registerDomEvent(element, 'click', callback);
如果需要使用setInterval
,请使用this.registerInterval
。
this.registerInterval(setInterval(callback, 1000));
obsidianmd/obsidian-sample-plugin
第三方插件 - Obsidian 中文帮助 - Obsidian Publish
Obsidian Plugin Development - Alexis Rondeau - Obsidian Publish